package in.rob.client;
import android.app.Application;
import android.net.Uri;
import android.os.AsyncTask;
import android.text.TextUtils;
import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import in.lib.manager.CacheManager;
import in.lib.manager.MigrationManager;
import in.lib.manager.SettingsManager;
import in.lib.manager.UserManager;
public class MainApplication extends Application
{
@Override public void onCreate()
{
super.onCreate();
CacheManager.setCachePath(getFilesDir().getAbsolutePath());
MigrationManager.getInstance().migrate(this);
SettingsManager.getInstance().initialise(this);
UserManager.getInstance().initialise(this);
initImageLoader();
SettingsManager.getInstance().toggleQuickPost();
}
public void initImageLoader()
{
ImageLoader coverImageLoader = ImageLoader.getInstance();
ImageLoaderConfiguration.Builder builder = new ImageLoaderConfiguration.Builder(getApplicationContext());
builder.threadPoolSize(1);
builder.discCacheFileNameGenerator(new FileNameGenerator()
{
@Override public String generate(String imageUri)
{
Uri uri = Uri.parse(imageUri);
if (!TextUtils.isEmpty(uri.getQueryParameter("avatar")))
{
return "avatar_" + uri.getQueryParameter("id") + "_" + String.valueOf(imageUri.hashCode());
}
return String.valueOf(imageUri.hashCode());
}
});
builder.denyCacheImageMultipleSizesInMemory();
builder.tasksProcessingOrder(QueueProcessingType.LIFO);
builder.discCacheSize(1024 * 1024 * 30);
builder.memoryCacheExtraOptions(300, 300);
if (android.os.Build.VERSION.SDK_INT >= 11)
{
builder.taskExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
builder.taskExecutorForCachedImages(AsyncTask.THREAD_POOL_EXECUTOR);
}
ImageLoaderConfiguration config = builder.build();
coverImageLoader.init(config);
}
@Override public void onLowMemory()
{
ImageLoader.getInstance().clearMemoryCache();
super.onLowMemory();
}
}